Page({
  data: {
    userInfo: null, // 用户信息
    isAuthorized: false, // 授权状态
  },

  onLoad() {
    // 初始化时检查缓存中的用户信息
    this.checkCachedUserInfo();
  },

  // 检查缓存中的用户信息
  checkCachedUserInfo() {
    const cachedUserInfo = xhs.getStorageSync('userInfo');
    if (cachedUserInfo) {
      // 更新全局用户信息
      getApp().globalData.userInfo = cachedUserInfo;
      // 更新页面数据
      this.setData({
        userInfo: cachedUserInfo,
        isAuthorized: true,
      });
    }
  },

  // 处理登录
  handleLogin(e) {
    if (this.data.isAuthorized) {
      return; // 如果已授权，不重复调用
    }

    // 获取用户信息
    const userInfo = e.detail.userInfo;
    if (userInfo) {
      const userData = {
        avatar: userInfo.avatarUrl,
        nickname: userInfo.nickName,
        bio: userInfo.bio || '暂无简介',
      };
      // 更新全局用户信息
      getApp().globalData.userInfo = userData;
      // 更新页面数据
      this.setData({
        userInfo: userData,
        isAuthorized: true,
      });

      // 将用户信息存储到缓存中，设置缓存时间为 7 天
      xhs.setStorageSync('userInfo', userData);

      // 同步用户信息到后端
      this.syncUserInfoToBackend(userData);
    } else {
      console.error('获取用户信息失败:', e);
    }
  },

  // 同步用户信息到后端
  syncUserInfoToBackend(userData) {
    xhs.request({
      url: 'https://wx2.xjuke.com/api/redbook/login', // 替换为实际的后端 API 地址
      method: 'POST',
      data: {
        avatar: userData.avatar,
        nickname: userData.nickname,
        bio: userData.bio,
      },
      success: (res) => {
        if (res.statusCode === 200) {
          console.log('用户信息同步成功:', res.data);
        } else {
          console.error('用户信息同步失败:', res);
        }
      },
      fail: (err) => {
        console.error('用户信息同步接口调用失败:', err);
      },
    });
  },

  // 跳转到订单页面
  goToOrder() {
    xhs.navigateTo({
      url: '',
    });
  },

  // 跳转到收藏页面
  goToFavorites() {
    xhs.navigateTo({
      url: '',
    });
  },

  // 跳转到设置页面
  goToSettings() {
    xhs.navigateTo({
      url: '',
    });
  },

  // 退出登录
  logout() {
    xhs.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除全局用户信息
          getApp().globalData.userInfo = null;
          // 清除缓存中的用户信息
          xhs.removeStorageSync('userInfo');
          // 更新页面数据
          this.setData({
            userInfo: null,
            isAuthorized: false,
          });
        }
      },
    });
  },
}); 